From 07d5f65894d177570fbb83750a8caabef3999416 Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Thu, 17 Jan 2008 12:05:43 -0700 Subject: [PATCH] [IA64] domheap: Allocate PV privregs pages from domain heap Signed-off-by: Isaku Yamahata --- xen/arch/ia64/xen/domain.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index 955502d454..ac2ab12700 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -400,7 +400,7 @@ void relinquish_vcpu_resources(struct vcpu *v) if (HAS_PERVCPU_VHPT(v->domain)) pervcpu_vhpt_free(v); if (v->arch.privregs != NULL) { - free_xenheap_pages(v->arch.privregs, + free_domheap_pages(virt_to_page(v->arch.privregs), get_order_from_shift(XMAPPEDREGS_SHIFT)); v->arch.privregs = NULL; } @@ -501,6 +501,7 @@ static void vcpu_share_privregs_with_guest(struct vcpu *v) int vcpu_late_initialise(struct vcpu *v) { struct domain *d = v->domain; + struct page_info *page; int rc, order; if (HAS_PERVCPU_VHPT(d)) { @@ -511,7 +512,11 @@ int vcpu_late_initialise(struct vcpu *v) /* Create privregs page. */ order = get_order_from_shift(XMAPPEDREGS_SHIFT); - v->arch.privregs = alloc_xenheap_pages(order); + page = alloc_domheap_pages(NULL, order, 0); + if (page == NULL) + return -ENOMEM; + + v->arch.privregs = page_to_virt(page); BUG_ON(v->arch.privregs == NULL); memset(v->arch.privregs, 0, 1 << XMAPPEDREGS_SHIFT); vcpu_share_privregs_with_guest(v); -- 2.30.2